package com.pets.service;

import com.pets.entity.Users;
import com.pets.qo.ResetPasswordQO;
import com.pets.qo.UserLoginQO;
import com.pets.qo.UserRegisterQO;
import com.pets.util.Result;

import javax.servlet.http.HttpServletRequest;

/**
 * 用户相关控制器
 */
public interface UserService {

    /**
     * 用户登录方法
     * @param request
     * @param userLoginQO
     * @return
     */
    Result userLogin(HttpServletRequest request, UserLoginQO userLoginQO);

    /**
     * 判断手机号是否存在
     * @param phone
     * @return
     */
    Result checkPhone(String phone);

    /**
     * 判断用户名是否存在
     * @param uName
     * @return
     */
    Result checkUserName(String uName);

    /**
     * 用户注册
     * @param userRegisterQO
     * @return
     */
    Result userRegister(UserRegisterQO userRegisterQO);

    /**
     * 重置密码查看是否存在该手机账户
     * @param phone
     * @return
     */
    Result resetPasswordGetUserByPhone(String phone);

    /**
     * 重置密码
     * @param resetPasswordQO
     * @return
     */
    Result resetPassword(ResetPasswordQO resetPasswordQO);

    /**
     * 根据用户id获取用户信息
     * @param userId
     * @return
     */
    Users getUsersById(int userId);

    /**
     * 根据用户id修改密码
     * @param userId
     * @param password
     * @return
     */
    Result userUpdatePassword(int userId, String password);

    /**
     * 用户实名认证
     * @param userId
     * @param cardNo
     * @param realName
     * @return
     */
    Result realNameCertification(int userId, String cardNo, String realName);
}
